10 REM ******************************** 20 REM * 30 REM * CHARACTER-SETUP 40 REM * 50 REM * BY 60 REM * 70 REM * PETER TATTERSALL 80 REM * 90 REM ******************************** 100 : 101 POKE 52,104:POKE 56,104:CLR:REM RESERVE MEMORY 102 : 103 REM TURN ON CHARACTERS 104 : 105 POKE 53272,(PEEK(53272)AND 240)+14 106 : 110 REM WE'LL DO ALL THIS IN BASIC 120 REM SO YOU CAN SEE WHAT WE'RE DOING 130 : 140 REM FIRST TURN OFF THE INTERRUPTS 145 REM WHICH IS OK FROM BASIC AS LONG 146 REM AS YOU DON'T HAVE BUS CARDS, 147 REM OR (SOME) BASIC EXTENSIONS 148 : 150 POKE 56334,PEEK(56334)AND 254 151 : 152 REM RESET THE BLOCK TO 1 153 : 154 POKE 56578,PEEK(56578)OR3:POKE 56576,(PEEK(56576)AND 252)OR2 155 : 156 REM RESET THE PAGE POINTER 157 : 158 POKE 648,104:POKE 53272,(PEEK(53272)AND 15) OR 160 159 : 160 : 170 REM SWITCH OUT I/O AND SWITCH IN 180 REM CHARACTER ROM 190 POKE 1,PEEK(1) AND 251 200 : 210 REM MOVE CHARACTERS TO $3000 220 : 230 FOR I=0 TO 4095 240 POKE I+28672,PEEK(I+53248) 250 NEXT 260 : 270 REM RESTORE I/O 280 : 290 POKE 1,PEEK(1) OR 4 300 : 310 REM RESTORE INTERUPTS 320 : 330 POKE 56334,PEEK(56334) OR 1 340 : 350 REM MODIFY "BLOCKS" 360 : 370 FOR I=1024 TO 2047 380 POKE 28672+I,PEEK(27648+I) 390 NEXT 400 : 410 FOR I=1031 TO 2047 STEP 8 420 POKE 28672+I,255 430 NEXT 440 : 450 FOR I=3072 TO 4095 460 POKE 28672+I,PEEK(27648+I) 470 NEXT 480 : 490 FOR I=3079 TO4095 STEP 8 500 B=255 AND (NOT(PEEK(28672+I))) 510 POKE 28672+I,B 520 NEXT 530 : 540 REM ALL DONE - BUT NOW WE HAVE NO 550 REM REVERSE CHARACTERS, AND SOME 560 REM MEMORY SPACE IS WASTED. 570 : 580 REM OF COURSE, MACHINE CODE WOULD DO THIS FASTER... 590 : 600 REM SET UP A NEW INTERUPT ENTRY 610 REM AND ENABLE IT 620 FOR I=32768 TO 32809 630 READ A 640 POKE I,A 650 NEXT 660 : 670 SYS 32797 680 : 690 END 695 : 696 REM FIRST TWO DATA LINES ARE FLASHKILLER 697 : 700 DATA 32,234,255,165,204,208,19,164,211,177,209,41,127,133,206,9 710 DATA 128,145,209,169,1,133,207,76,79,234,76,97,234 715 : 716 REM NEXT LINE IS ENABLER 720 : 730 DATA 120,169,0,141,20,3,169,128,141,21,3,88,96